package com.haois.mp.database.module.sdk.api;

import com.haois.mp.database.commom.constant.ApiAppKey;
import com.haois.mp.database.module.sdk.util.JuHeUtil;
import com.haois.mp.database.util.ReadFileUtil;
import com.haois.mp.database.module.common.daomain.Vehicle;
import net.sf.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

/**
 * description
 *
 * @author RuiHaoZ on Hgits.cn
 * @date 2018/9/3 20:26
 */
public class JhWzService {

    //配置您申请的KEY
    public static final String Wz_APP_KEY = ApiAppKey.Jh_Wz_AppKey;
    public static final String Zl_APP_KEY = ApiAppKey.Jh_Swei_AppKey;

    /**
     * 获取支持城市参数接口
     *
     * @return
     */
    public static JSONObject getRequest1() {
        //请求接口地址
        String url = "http://v.juhe.cn/wz/citys";
        //请求参数
        Map params = new HashMap();
        //默认全部，省份简写，如：ZJ、JS
        params.put("province", "");
        //返回数据格式：json或xml或jsonp,默认json
        params.put("dtype", "");
        //格式选择1或2，默认1
        params.put("format", "");
        //返回格式选择jsonp时，必须传递
        params.put("callback", "");
        //你申请的key
        params.put("key", Wz_APP_KEY);

        return JuHeUtil.getRequest(url, params);
    }

    /**
     * 0请求违章查询接口
     *
     * @param vehicle 车辆信息
     * @return
     */
    public static JSONObject getVehicleWzInfo(Vehicle vehicle) {
        String url = "http://v.juhe.cn/wz/query";
        String appKey = Wz_APP_KEY;
        return getRequest(url, appKey, vehicle);
    }


    /**
     * 全国违章直连查询
     *
     * @param vehicle
     * @return
     */
    public static JSONObject getVehicleWzInfo_Swei(Vehicle vehicle) {
        String url = "http://v.juhe.cn/sweizhang/query";
        String appKey = Zl_APP_KEY;
        return getRequest(url, appKey, vehicle);
    }


    /**
     * 接口剩余请求次数查询
     *
     * @return
     */
    public static JSONObject getRequest3() {
        //请求接口地址
        String url = "http://v.juhe.cn/wz/status";
        //请求参数
        Map params = new HashMap();
        //应用APPKEY(应用详细页查询)
        params.put("key", Wz_APP_KEY);
        //返回数据的格式,xml或json，默认json
        params.put("dtype", "");
        return JuHeUtil.getRequest(url, params);
    }

    /**
     * @param url     请求地址
     * @param appKey  AppKey
     * @param vehicle 车辆信息
     * @return
     */
    private static JSONObject getRequest(String url, String appKey, Vehicle vehicle) {
        String engineNo = vehicle.getEngineNo().substring(vehicle.getEngineNo().length() - 6);
        String classNo = vehicle.getVin().substring(vehicle.getVin().length() - 6);
        //请求参数
        Map params = new HashMap();
        //返回数据格式：json或xml或jsonp,默认json
        params.put("dtype", "json");
        //返回格式选择jsonp时，必须传递
        params.put("callback", "");
        //你申请的key
        params.put("key", appKey);
        //城市代码
        params.put("city", vehicle.getCity());
        //号牌号码 完整7位 ,需要utf8 urlencode*
        params.put("hphm", vehicle.getPlate());
        //号牌类型，默认02
        params.put("hpzl", "02");
        //发动机号 (根据城市接口中的参数填写)
        params.put("engineno", engineNo);
        //车架号 (根据城市接口中的参数填写)
        params.put("classno", classNo);
//        String result = "{\"resultcode\":\"200\",\"reason\":\"查询成功\",\"result\":{\"province\":\"GD\",\"city\":\"GD_GZ\",\"hphm\":\"粤A0CA50\",\"hpzl\":\"02\",\"lists\":[{\"date\":\"2017-02-07 15:35:15\",\"area\":\"济广高速1866公里900米\",\"act\":\"驾驶中型以上载客载货汽车、校车、危险物品运输车辆以外的其他机动车行驶超过规定时速20%以上未达到50%的\",\"code\":\"1636\",\"fen\":\"6\",\"wzcity\":\"广东惠州\",\"money\":\"150\",\"handled\":\"0\",\"archiveno\":\"4413937902305279\"},{\"date\":\"2018-01-01 11:05:30\",\"area\":\"大广高速\",\"act\":\"驾驶中型以上载客载货汽车、危险物品运输车辆以外的其他机动车行驶超过规定时速10%未达20%的\",\"code\":\"1352A\",\"fen\":\"3\",\"wzcity\":\"广东广州\",\"money\":\"150\",\"handled\":\"0\",\"archiveno\":\"4401927900453513\"},{\"date\":\"2018-06-14 16:58:44\",\"area\":\"菩提路-菩提路与三号路路口段\",\"act\":\"违法停车、交警通告处罚500元的\",\"code\":\"8024B\",\"fen\":\"0\",\"wzcity\":\"广东深圳\",\"money\":\"500\",\"handled\":\"0\",\"archiveno\":\"4403047902238398\"}]},\"error_code\":0}";
//        return JSONObject.fromObject(result);
        return JuHeUtil.getRequest(url, params);
    }


    public static JSONObject getSupCity() {
        String filePath = ReadFileUtil.getFilePath("static/json/city.json");
        String result = ReadFileUtil.readFile(filePath);
        JSONObject jsonObject = JSONObject.fromObject(result);
        return jsonObject;
    }

    public static void main(String[] args) {
        String yueA = "{\"province\":\"GD\",\"city\":\"GD_GZ\",\"hphm\":\"粤A0CA50\",\"hpzl\":\"02\",\"lists\":[{\"date\":\"2017-02-07 15:35:15\",\"area\":\"济广高速1866公里900米\",\"act\":\"驾驶中型以上载客载货汽车、校车、危险物品运输车辆以外的其他机动车行驶超过规定时速20%以上未达到50%的\",\"code\":\"1636\",\"fen\":\"6\",\"money\":\"150\",\"handled\":\"0\",\"archiveno\":\"4413937902305279\",\"wzcity\":\"广东惠州\"},{\"date\":\"2018-01-01 11:05:30\",\"area\":\"大广高速\",\"act\":\"驾驶中型以上载客载货汽车、危险物品运输车辆以外的其他机动车行驶超过规定时速10%未达20%的\",\"code\":\"1352A\",\"fen\":\"3\",\"money\":\"150\",\"handled\":\"0\",\"archiveno\":\"4401927900453513\",\"wzcity\":\"广东广州\"},{\"date\":\"2018-06-14 16:58:44\",\"area\":\"菩提路-菩提路与三号路路口段\",\"act\":\"违法停车、交警通告处罚500元的\",\"code\":\"8024B\",\"fen\":\"0\",\"money\":\"500\",\"handled\":\"0\",\"archiveno\":\"4403047902238398\",\"wzcity\":\"广东深圳\"}]}";
        JhWzService jhWzService = new JhWzService();
        JSONObject jsonObject = jhWzService.getSupCity();
        System.out.println(jsonObject);
    }
}
